1. Field of the Invention
The present invention relates to digital buses and specifically to bridging data from one bus type over another bus type.
2. Prior Art
IEEE1394 bus configuration process: Single bus
IEEE1394 bus configuration process consists of three steps: bus initialization, tree identify, and self identify. (refer to IEEE Std 1394-1995, pages 307-319).
Bus initialize: A bus reset is generated whenever there is a topology change, for example when a node is connected into or disconnected from the bus. Each port keeps the connection status and checks the change of the status.
Tree identify: After the bus initialize, the tree identify process translates the general network topology into a tree, where one node is designated as a root and all of the physical connections have a direction associated with them pointing towards the root. Each port can notify its directly connected port as its probable parent. If two neighboring ports notify each other at the same time, a random back off is used to resolve the competition. The port which waits the longest after the bus reset to start participating in the tree identify process becomes the root of the bus. This provides a way for the user to choose one particular node as the root node.
Self identify: The self identify process uses a deterministic selection process to let each node on the bus to identify itself by generating and sending a packet containing its physical ID. The physical ID is simply the count of the number of times a node passes through the state of receiving self-ID packets from other nodes before having its own opportunity to do so. The root node passes control of the bus to the node attached to its lowest numbered connected port and waits for that node to signal that it and all of its children nodes have identified themselves. The root then passes control to its next highest port and waits for that node to finish. When the nodes attached to all the ports of the root are finished, the root itself does a self identify. The children nodes uses the same process in a recursive manner. The IEEE1394 is an all-pass bus where each node sees the self-ID packet of every other node.
After the root has sent its self-ID packet, every node can build up the bus topology based on the self-ID packets observed. Each node is aware of the existence of all the other nodes on the bus. There can be up to 63 nodes on a bus. If a new node is connected to the bus or an existing node is disconnected, the above bus configuration process will be triggered, so that each node has an updated view of the bus topology.
Multi-Bus Network
P1394.1 is being developed to bridge multiple IEEE1394 buses, each of which can have up to 63 nodes. Up to 1023 IEEE1394 buses can be bridged together. In P1394.1, each bus is an autonomous bus, with a unique bus ID. There are many desirable properties with this approach, such as:                Enabling a larger network, with Up to 1023 buses or 64K nodes        Each bus can be more efficient        Isolates local traffic, resulting in more usable bandwidth in the network        Isolates bus reset, resulting in a more stable network        Isolates local events from the rest of the network        Isolates medium-specific behaviors        Provides an open framework for bridging clusters of different medium and protocols        
However, P1394.1 bridges work correctly only with bridge-aware devices. A bridge-aware device has the following properties:                Aware that there may be more than a local bus in the network        Knows the difference between local node IDs and global IDs        Can discover remote devices (e.g., using DEP (Discovery and Enumeration Protocol))        Can determine and deal with remote timeouts        Can detect bridge portals on the local bus        Implements bridge-aware bit in Configuration ROM        Implements special registers:                    QUARANTINE            MESSAGE_REQUEST, MESSAGE_RESPONSE                        Understands new primary packet fields (e.g., proxy_ID)        
This and other constraints (refer to chapter 9 of 1394.1 spec, Draft 1.04) mean that almost all current 1394 devices are non-compliant to the 1394.1 chapter 9, and thus cannot work as specified by P1394.1. In fact, these devices can even not detect the connect/disconnect of a remote device.